package com.ruoyi.gather.api.domain.dto;

import com.alibaba.fastjson.JSONArray;
import com.ruoyi.gather.api.domain.*;
import com.ruoyi.gather.api.domain.vo.ErpCollectProductSkuVo;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;



/**
 * 上传Erp商品至AE的整合实体类
 */
@Data
public class AeAutoProductDto {

    /**
     * 发布类型 0-发布 1-补发 0-测试发布
     */
    private Integer publishType;

    private Integer code;

    private String msg;

    private String storeUserName;

    private Long aeProductId;

    private Long sellerStoreProductId;

    private Long activityId;
    /**
     * 类目
     */
    private Long categoryId;
    /**
     * 活动id
     */
    private Long productDiscountId;
    //商品品牌
    private String productBrand;
    //运费模版
    private Long freightTemplateId;
    //系统预制运费模板标识
    private Integer settingFreightTemplateId;
    //海外仓列表
    private String shipsFromCountry;
    /**
     * 用户id
     */
    private Long sellerId;

    /**
     * 店铺id
     */
    private Long storeId;

    /**
     * 任务id
     */
    private String autoTaskId;

    private String currencyCode;


    /**
     * 采集商品库id
     */
    private Long collectProductId;

    /**
     * 产品的主图URL列表;产品的主图URL列表。如果这个产品有多张主图，那么这些URL之间使用英文分号(";")隔开。一个产品最多只能有6张主图。图片格式JPEG，文件大小5M以内；图片像素建议大于800*800；横向和纵向比例建议1:1到1:1.3之间；图片中产品主体占比建议大于70%；背景白色或纯色，风格统一；如果有LOGO，建议放置在左上角，不宜过大。不建议自行添加促销标签或文字。切勿盗用他人图片，以免受网规处罚。更多说明请至http://seller.aliexpress.com/so/tupianguifan.php进行了解。
     */
    private String imageURLs;
    /**
     * 白底图
     */
    private String white;
    /**
     * 营销图
     */
    private String marketing;

    private String detailImg;

    /**
     * 产品的主图URL列表;产品的主图URL列表。如果这个产品有多张主图，那么这些URL之间使用英文分号(";")隔开。一个产品最多只能有6张主图。图片格式JPEG，文件大小5M以内；图片像素建议大于800*800；横向和纵向比例建议1:1到1:1.3之间；图片中产品主体占比建议大于70%；背景白色或纯色，风格统一；如果有LOGO，建议放置在左上角，不宜过大。不建议自行添加促销标签或文字。切勿盗用他人图片，以免受网规处罚。更多说明请至http://seller.aliexpress.com/so/tupianguifan.php进行了解。
     */
    private String imageUrlsOld;
    /**
     * 白底图
     */
    private String whiteOld;
    /**
     * 营销图
     */
    private String marketingOld;

    private String detailImgOld;

    /**
     * 详情;Detail详情。以下内容会被过滤，但不影响产品提交:(1)含有script	extareastyleiframeframeinputpreutton均被过滤.(2)a标签href属性只允许是aliexpress.com域名连接,否则被过滤.(3)img标签src只允许alibaba.com或者aliimg.com域名链接.(4)任意具有style属性的html标签，其style受检查，只允许一般简单的样式.不允许的内容将被过滤.(5)如果发现html内容标签缺失，会自动补全标签.
     */
    private String detail;

    /**
     * 商品标题;商品标题 长度在1-128之间英文（ascii码从00到7F），不允许有这几个字符。
     */
    private String subject;


    private List<ErpSellerProductSku> erpSellerProductSkuList;


    /**
     * 服务模板设置;服务模板设置。（需和服务模板查询接口api.queryPromiseTemplateById进行关联使用
     */
    private Long promiseTemplateId;
    /**
     * 调价方式：0固定上调，1百分比上调
     */
    private String priceAdjustmentMethod;
    /**
     * 调价
     */
    private Integer readjustPricesType;
    /**
     * 是否自动匹配（0否 1是）
     */
    private Integer isAutoMate;
    /**
     * 是否审核
     */
    private Integer isAudit;
    /**
     * 库存扣减策略;库存扣减策略，总共有2种：下单减库存(place_order_withhold)和支付减库存(payment_success_deduct)。
     */
    private String reduceStrategy;

    /**
     * 是否主图调序
     */
    private Integer isMainImageReordering;
    /**
     * 是否加水印
     */
    private Integer isAddWatemark;

    private Long stock;

    /**
     * 智能定价模版
     */
    private String templateId;

    /**
     * 商品一口价;商品一口价。取值范围:0-100000,保留两位小数;单位:美元。如:200.07，表示:200美元7分。需要在正确的价格区间内。上传多属性产品的时候，有好几个SKU和价格，productprice无需填写。
     */
    private String productPrice;

    private String brandStr;
    /**
     * 自定义属性;产品属性
     */
    private String customAttributes;

    private String customAttributesAll;

    /**
     * 区域定价MAP;参考：https://developers.aliexpress.com/doc.htm?docId=109575&docType=1
     */
    private String absoluteQuoteMap;

    private String grossWeight;

    private Integer packageHeight;

    private Integer packageLength;

    private Integer packageWidth;

    private Long productUnit;

    private Long sizechartId;

    //批发最小数量
    private Long bulkOrder;
    //每增加件数
    private String addUnit;
    //对应增加的重量
    private BigDecimal addWeight;
    //购买几件以内不增加运费。取值范围1-1000
    private String baseUnit;
    //批发折扣
    private Long bulkDiscount;
    //备货期
    private Long deliveryTime;
    //打包銷售
    private String packageType;
    //是否自定义计重
    private String isPackSell;
    //每包件数
    private Long lotNum;

    //商品类型 0-2.0的品 1-非2.0的品 在自动化模块中用于区分是否是1688采集
    private Integer productType;

    //速卖通需要详描格式
    private JSONArray detailSourceList;

    //速卖通需要的标题格式
    private JSONArray subjectList;

    //速卖通需要的图片格式
    private JSONArray marketImages;

    //速卖通需要的的区域定价
    public String aeopNationalQuoteConfiguration;

    //欧盟负责人
    public String msrEuId;

    public List<ErpSellerStoreProductSku> sellerStoreProductSkuList;

    public JSONArray aeopAeProductSKus;

    private String afflicateDiscount;

    private Integer isAfflicateDiscount;


    //调用方法类型 为null则为正常发布，为1则为测试发布
    public Integer methodType;


    public ErpCollectProduct collectProduct;
    public ErpCollectProductExpand collectProductExpand;
    public List<ErpCollectProductSkuVo> collectProductSkuList;

    //店铺类型 0-正常店铺 1-子账号
    public Integer storeType;


}
